Error Management

When a non-fatal error occurs and motion must be stopped quickly, the following procedure can be taken:

For each axis:

Step

Example Application Code

Send Stop Command for each axis

MLAxisStop(PipeNetwork.AXI_A1_Axis, TRUE, DEF_A1_StopDec);

Stop the Axis Motion Generator

MLAxisMoveVel(PipeNetwork.AXI_A1_Axis, 0.0);

Wait for Axis to be stopped

AxisStatus := MLAxisStatus(PipeNetwork.AXI_A1_Axis);
IF AxisStatus.11 THEN
MLAxisStop(PipeNetwork.AXI_A1_Axis,FALSE,DEF_A1_StopDec);

Turn power off(disable) all the axes

MLAxisPower(PipeNetwork.AXI_A1_Axis,FALSE);

Disconnect Pipe Network from the axis

MLCNVDisconnect(PipeNetwork.CNV_A1);

For the machine:

Step

Example Application Code

Stop Command at the master block level

MLMstRun(PipeNetwork.MASTER, 0.0);

Wait for Master command to be stopped

IF A1_AckState = DEF_StateErrorStop
   AND A2_Ackstate = DEF_StateErrorStop
   AND MLBlkIsReady(PipeNetwork.MASTER)
THEN
PrintF('*** ErrorStop M1=%i ***', M1_StatusWord,0,0,0);
   M1_AckState := DEF_StateErrorStop;

This procedure for error management is based on the Project Structure Guidelines as described in Application Software Structure - Implementation

For information on restarting the motion, refer to Restarting Motion with PipeNetwork